package cn.shop.front.service;

import cn.shop.base.MyService;
import cn.shop.transcation.bankcard.entity.BankAndIDInfo;
import cn.shop.transcation.bankcard.entity.BankCard;
import cn.shop.utils.ApiResult;

import java.util.List;
import java.util.Map;

/**
 * @author : 李一涵
 * @date : Created in 2022-2-16 14:56
 * @description :
 */
public interface BankCardService extends MyService<BankCard> {

    /**
     * 获取银行卡信息
     *
     * @param id 编号
     * @param ownerId 所有人编号
     * @return 返回结果
     */
    Map<String, Object> getInfo(long id, long ownerId);

    /**
     * 更新银行卡信息
     *
     * @param ownerId 所有人
     * @param update 更新信息
     * @return 返回结果
     */
    boolean updateInfo(long ownerId, BankCard update);

    /**
     * 获取已绑定银行卡数量
     *
     * @param ownerId 所有人
     * @return 返回结果
     */
    long getBankCount(long ownerId);

    /**
     * 获取已绑定银行卡列表
     *
     * @param ownerId 所有人
     * @return 返回结果
     */
    List<Map<String, Object>> bankList(long ownerId);
    /**

    * 获取登录用户的银行卡信息实名信息和账号信息
    * @author 王鹤然
    * @date 2023/1/30 0030 上午 10:26
     * @param userId
     * @return cn.shop.transcation.bankcard.entity.BankAndIDInfo
    */
    BankAndIDInfo getBankAndIDInfo(Long userId);
    /**

    *提交登录用户的银行卡信息实名信息和账号信息
    * @author 王鹤然
    * @date 2023/1/30 0030 上午 10:48
     * @param bankAndIDInfo
     * @return boolean
    */
    ApiResult<Map<String, Object>> submitBankAndID(BankAndIDInfo bankAndIDInfo);


    /**
     * 修改默认银行卡
     * @param bankCard
     * @return
     */
    boolean changeDefault(BankCard bankCard);
}
